# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals

from wechatpy.client.api.base import BaseWeChatAPI


class WeChatExtra(BaseWeChatAPI):
    API_BASE_URL = 'https://api.weixin.qq.com/'

    def mini_send_subscribe_template(self, openid, template_id, data, page, miniprogram_state=None):
        """
        一次性订阅消息，通过API推送订阅模板消息给到授权微信用户。
        详情请参阅：
        https://mp.weixin.qq.com/wiki?id=mp1500374289_66bvB

        :param openid: 填接收消息的用户openid
        :param template_id: 订阅消息模板ID
        :param data: 消息正文
        :type data: dict
        :param page: 前端给的page
        :param page: 跳转小程序类型：developer为开发版；trial为体验版；formal为正式版；默认为正式版
        """
        post_data = {
            'touser': openid,
            'template_id': template_id,
            'page': page,
            "miniprogram_state": miniprogram_state,
            "lang": "zh_CN",
            'data': data,
        }
        return self._post(
            'cgi-bin/message/subscribe/send',
            data=post_data,
        )
